The invention pertains to a method for the configuration and parameterization of a graphical computer program, such as for the operation of a data processing system. The data processing system contains at least one data processor, one data memory, one input device and one display device. The program controls functional elements comprising, on one hand, of devices which are connected to the data processor via signal or data interfaces and, on the other hand, functional units which are emulated by a software module. The invention also pertains to a computer program for carrying out such a method.
Data processing systems are used in numerous technical fields, in particular, for the acquisition of measurement data at test stands, for the monitoring of process data in chemical systems, for quality monitoring in mechanical manufacturing systems, etc. Modern data processing systems typically utilize a computer with a data processor, a data memory, and an input device (keyboard, computer mouse, trackball or the like), as well as a display device, usually a monitor. The functional elements of a measurement or automation system may comprise data acquisition devices, e.g., measuring sensors, devices for reading data carriers (CD-ROM drive, diskette drive or the like), mechanical scanning devices, optical measuring devices, etc. Such data acquisition devices are usually connected to signal interfaces of the computer via signal lines. The signal interfaces can be configured for the transmission of digital signals if the external data acquisition device or measuring device digitizes the acquired signals. If the external data acquisition device supplies an analog signal, e.g., when using temperature sensors or microphones, the interface is realized in the form of an analog signal input. The received analog signal is converted into a digital signal by means of a data processor that is usually part of an analog/digital converter within the computer, and forwarded (e.g., to a data memory).
The functional elements may also contain additional signal sources such as, e.g., a clock signal generator, which defines a certain time cycle, or a trigger, which supplies a trigger signal when another signal exceeds a certain threshold value.
The functional elements may also contain devices for converting and additionally processing data and signals. For example, signals recorded by means of a signal recording device can be scaled and transformed. Depending on the intended use, other data transformation methods can be used.
Finally, the functional elements contain data memories for storing a selected portion of the recorded data as well as display devices for displaying a certain image of the recorded signals and data.
The individual functions of the functional elements were initially fulfilled by separate devices that were coupled to one another via electrical signal lines. With the increasing capability of modern computers, many of the functions of the functional elements can be emulated within the computer by means of software modules and, if necessary, in cooperation with the required hardware components in the computer. For example, so-called transient recorders for recording and storing a large quantity of digitized signals can be eliminated, due to the continuously increasing capacity of the main memories (RAM) and the hard disk drives in the computers. Due to the increasing computing power of the data processor, external FFT analyzers can be eliminated and the Fourier transform can be carried out within the computer by the data processor with the aid of a software module. Special processors, e.g., mathematical coprocessors, can be integrated into the computer if it is necessary to carry out complex mathematical transformations.
The increasing capacity of hardware has led to an integration of computers into the measurement chain. This integration has resulted in the fact that conventional interconnections of the functional elements can be realized by electrically conductive signal lines. In addition, the separate arrangement of display devices and operating elements can be replaced in ever more instances by direct connections to the computer, since, in many cases, the computer can integrate operating elements and a display device into one unit, and it is able to fulfill this task for several devices or functions simultaneously.
The emulation, configuration and interconnection of the various functional elements was initially realized by means of computer programs prepared as text in customary programming languages, such as FORTRAN, PASCAL, etc. Such a configuration of a measurement or control computer required comprehensive knowledge of the respective programming language. In addition, comprehensive knowledge regarding the design of the computer as well as the devices connected to the computer was required to read signals present at the different interfaces by means of the data processing program and to control the devices that are connected to the computer via the interfaces.
The disadvantage of known programming languages is that it is difficult to ascertain the functional interconnections between the different functional elements of the system from the program. The functional interconnections were usually outlined, before the program was written, in a graphical fashion in the form of easy-to-understand flow charts. After the system requirements were defined by means of the flow chart, the required command sequences were written in an arbitrary text-based programming language by a programmer and the resulting computer program was compiled.
With the increase in capability for producing graphic illustrations at the beginning of the 1980s, data flow charts were preferably prepared on the display devices of computers with a suitable program module, a data flow chart editor. It was later recognized that the information content in a data flow chart prepared on a computer display did not necessarily have to be converted into textual program code by a programmer, but rather it could be used by the computer to create a computer program that operates according to the data flow chart. Thus, the authors Davis and Keller disclosed the possibility of specifying programs by using editors for data flow charts in the article xe2x80x9cData flow program graphsxe2x80x9d in IEEE Computer, February 1982. Similar embodiments are described in the article xe2x80x9cPICT:AN Interactive Graphical Programming Environmentxe2x80x9d by the authors Glienert and Tanimoto in IEEE Computer, November 1984. U.S. Pat. No. 4,901,221 (European Patent EP 0 242 131 B1) discloses a practical application of such graphical programming languages. In this case, a separate computer program may be prepared for each special application by means of the graphical programming language. For this purpose, the graphical programming language may represent the directional data flow from one functional element to another functional element, and it may represent the program control. In order to attain the latter objective, graphic illustrations of the control functions of the program, i.e., iterative and conditional functions, may be incorporated into the graphical programming language.
Due to further increase in storage capacity and computing speed of computers, a similar program concept was introduced on the market that contains a fixed algorithm. This algorithm contains software modules for all functional elements of the program as well as a program core that carries out the initialization of the drivers, devices, etc., the measurement loop itself (starting the signal recording, executing the mathematical signal conversion and storage/display) as well as the measurement post-processing. This fixed program can be adapted to the respective measuring task without altering the executable program code by simply changing certain parameters. Until now, parameterization was realized with a signal wiring diagram that contained different graphic symbols (pictographs) for different functional elements and their interconnections to one another, and thus, this wiring diagram exhibits a certain similarity to a data flow chart. The line symbols may represent a directional data flow, i.e., the data connections between the different devices or functional elements. However, the signal wiring diagram may lack the control structures (program loops, conditional commands, etc.) which may be utilized by a programming language. The data is stored in buffer memories by the fixed program algorithm and can be retrievedxe2x80x94even multiple timesxe2x80x94by arbitrary elements.
In smaller and clearly structured data processing systems, the data flow diagrams or charts of graphical programming languages or the similar wiring diagrams of the fixed program algorithms make it possible to significantly simplify the required design and configuration of the system. Modern data flow charts or diagram editors make it possible for experienced users to very quickly define and interconnect functional elements required for a certain task, in particular in the fields of metrology and system monitoring.
However, data flow charts or similar signal wiring diagrams have certain disadvantages, in particular, in the illustration of complex and not easily traceable systems. In data flow charts, as a rule, there is great freedom in the arrangement of symbols (also referred to as pictographs or icons) for the different functional elements. The user begins with an arbitrary symbol and adds additional symbols depending on the respective requirements. The location at which additional symbols are arranged is usually defined arbitrarily, and may not be associated with the interconnection of symbols to one another.
Different symbols can be connected to one another by means of connecting arcs or connecting lines. Connecting arcs extend from one symbol of a signal transmission channel of a first functional element to another symbol of either the same functional element or another functional element. Each symbol of a functional element within a data flow chart may contain several signal transmission channel symbols. For example, if the deviation between a nominal value and a control variable as well as the calculation of the correcting variable should be carried out by only one functional element, two signal transmission channel symbols for the signal inputs and one single transmission channel symbol for the signal output are required. As a rule, the connecting arcs in data flow charts or wiring diagrams can contain branches. However, the meaning of these branches in data flow charts and in wiring diagrams may be different. Wiring diagrams do not deal with jumps (in the sense of a control structure). In this case, an output signal of a measuring device or a signal generator can be fed to several signal inputs of different devices.
Due to the numerous liberties in graphic illustrations of this type, various users have developed different techniques for preparing data flow charts or signal wiring diagrams. Even simple illustrations often require the entire monitor surface. Complex branchings of the connecting arcs can result in interconnection architectures which are difficult to comprehend.
The present invention aims, in particular, to disclose an advantageous additional development of the method for parameterization of a computer program. One specific objective of the invention is to develop an improved method for the configuration and parameterization of a computer program for the operation of a data processing system, which allows a clear illustration of the system for the user and an optimum, simple and less error-prone method to change the configuration, particularly in complex systems.
One embodiment of the present invention comprises a graphical program development system for developing a graphical program, wherein the development system utilizes a configuration matrix for representing the graphical program. Thus the matrix may graphically illustrate or specify the operation of the computer program. The matrix may comprise columns (or rows) displayed on the display device, including one or more columns which comprise symbols for functional elements and one or more interconnection columns that include interconnections between two or more of the symbols for functional elements. Once the matrix (the computer program) has been created, the computer program may be executed, wherein the computer program executes according to the interconnected symbols for functional elements displayed in the matrix.
The configuration matrix may contain rows and columns that are correspondingly assigned one definite function. The first column, usually the outer left vertical column of the matrix, is designed preferably solely for the accommodation of symbols of the functional elements. This column is referred to as the object column in the following description, wherein the different functional elements (e.g., hardware devices, devices emulated by software or signal conversions carried out by software) are referred to by the common term xe2x80x9cfunctional elementxe2x80x9d or xe2x80x9cobject.xe2x80x9d Thus the term xe2x80x9cfunctional elementxe2x80x9d may comprise, on one hand, devices which are connected to the data processor via signal or data interfaces, and/or, on the other hand, functional units which are emulated by a software module. The interconnection between two functional elements within the matrix takes place according to fixed specifications. Adjacent to the first column, at least one second interconnection column may be automatically generated, which is divided into different fields. The second interconnection column is proximate to the first column, and preferably parallel to the first column. The fields that lie adjacent to one another form the rows of the matrix. Each row corresponds to a single signal transmission channel.
In order to link two signal transmission channels, a connection may be produced by selecting the two signal transmission channels in the interconnection column by means of the input device, preferably a computer mouse or a computer keyboard. After the input of an interconnection, the interconnection column is prevented from having a second interconnection between other signal transmission channels.
Due to these specifications, an unequivocally defined pattern for producing certain interconnections on the display is provided for the user. In the simplest instance, the two fields which correspond to the signal transmission channels to be connected can be connected to one another by marking the respective fields with a cross in the interconnection column. Since the interconnection column in question can only contain one interconnection, the two markings within an interconnection column are enough to define the interconnection. The matrix is typically designed for defining a signal or data interconnection. If it is intended to define a data flow, indications regarding the direction of data flow may be used. The matrix, is used to specify which signal inputs have access to which output signals stored in a buffer memory. However, it can also be used to write a program in the form of data flow charts. However, in this case, the matrix may optimally be expanded with symbols for illustrating the data flow direction and, in particular, symbols for defining the control functions (loops, conditions).
An interconnection is preferably illustrated by means of lines. A line within a row is defined as a signal transmission channel by the software program for carrying out the method according to one embodiment of the invention, wherein the signal transmission channel ends at the object symbol that lies to the left of the row. A line in a vertical column is unequivocally defined as an interconnection symbol between the two signal transmission channels. In one embodiment arbitrary division and branching as in known data flow charts is not possible. Data connections and data interconnections can only be produced between the rows (signal transmission channels) within the interconnection columns.
Naturally, the vertical and horizontal orientation within the matrix can be interchanged. For example, the object column may also extend horizontally (in this case, the object column should be referred to as an object row instead), wherein the signal transmission channels extend, e.g., downward from the object symbols, and the interconnection columns (or better, rows) extend horizontally between the signal transmission channels.
Preferably, only one empty interconnection column is provided within the matrix. This empty interconnection column is preferably the outermost interconnection column. In this way, it is ensured that every user is able to quickly recognize the location at which new inputs can be made. If an interconnection was produced within an interconnection column, a new empty interconnection column is generated on the display device. If an interconnection within an interconnection column is deleted or terminated, the additionally generated empty interconnection column is removed from the matrix. It is preferable that the free interconnection column to be processed, which does not contain an interconnection, can be identified visually from the other occupied interconnection columns by means of a different background color.
A produced interconnection is preferably illustrated on the display device in the form of lines. A signal line originates from each of the symbols that are linked to one another and extends at least to the interconnection column specified by the user. Within the interconnection column, an interconnection line is illustrated which extends between the two aforementioned signal lines. The signal lines can extend beyond the aforementioned interconnection column, in particular, if additional interconnections are based on these lines. In this case, a monitoring program module within the computer monitors each intended new interconnection and prevents the interconnection if the user attempts to input an already existing interconnection. Similar to data flow charts, a separation or combination of interconnections is possible in the configuration matrix according to one embodiment of the invention. The signals present at a signal output can be fed via various interconnections to different signal lines that lead to different signal inputs on other object symbols or on the same object signal symbol via the signal line that is connected to the symbol of this signal output. Similarly, several signals can be fed to one signal input by forming different interconnections on the same signal line that ends at the symbol for the aforementioned signal input. In contrast to known data flow charts, any interconnection with a signal can be easily located in the configuration matrix because all these interconnections lead to the signal line of the corresponding signal input or output.
In addition to the processing mode that is emphasized in this description, the program according to one embodiment of the invention may be equipped with a blocking mode. In this blocking mode, all changes are blocked by means of the input device. An empty interconnection column is also not displayed in the configuration matrix in this blocking mode. An empty interconnection column for producing an additional interconnection on the display device is only formed once the program is changed over into the edit mode.
In the blocking mode, another form of display may also be selected, e.g., a tree structure that is, e.g., known from the representation of data file directories on a data carrier. Also, in this tree structure, no alteration of the wiring diagram is possible.
As mentioned previously, each object symbol preferably contains several symbols for the signal and data connections of this functional element. If the object column is arranged on the left outer side of the configuration matrix, these symbols should be arranged on the right edge of the object symbol so that a row, which forms a signal transmission channel and in which there is a signal line for the branching of interconnections, borders each connection symbol.
Information regarding the properties of the different connections are preferably stored in data setsxe2x80x94independently of whether this pertains to interfaces of functional elements emulated by the computer or interfaces of external devices. This pertains, for example, to information regarding the type of interface (analog signal source, e.g., measuring sensor or digital data input or output), the data transmission format (serial interface or parallel interface), the transmission protocol of the interface, etc.
The information from the connection data set can be used to produce different illustrations of the connection symbols. The simplest differentiation between different connections is the differentiation between a signal input, a signal output and a bidirectional connection. This differentiation can, for example, be made visible to the eye by arrow symbols or triangular symbols with tips that point in the corresponding direction of the signal flow. If the tip is directed towards the object symbol, this pertains to a signal input. If the tip is directed outward towards the illustration of a signal line, this pertains to a signal output.
The program for carrying out the method according to one embodiment of the invention preferably generates the symbols of the signal and data connections provided in the object column on the display device in an empty interconnection column. This measure simplifies the interconnection. The user merely selects the respective symbols in the empty interconnection column by means of the input device (e.g., a computer mouse) in order to produce the interconnection. Alternatively, the user can also easily select the connection symbols in the object column, wherein the interconnection is registered on the display device in the only free interconnection column in the form of an interconnection line.
A monitoring module of the software for carrying out the method according to one embodiment of the invention compares the data sets of the two linked connections and blocks the interconnection if the connections are not compatible. For example, two signal output connections cannot be linked to one another.
A window with input fields, which is assigned to the object symbol and which allows the adjustment and configuration of parameters of the functional element in question, can be opened by selecting a symbol for a functional element (object) by means of the input device, usually by a double-click on the object symbol. Consequently, all specific characteristics (properties) can be adjusted and altered during processing of the configuration matrix, in particular for internal functional elements emulated by the computer as well as external devices that can be adjusted via the computer. One example to be mentioned in this context is the functional element xe2x80x9c3-step controller.xe2x80x9d The xe2x80x9c3-step controllerxe2x80x9d calculates the deviation from the nominal value and a control variable and also determines the correcting variable. The user is able to input specifications regarding the control parameters in the property window. FIG. 11 shows such a property window for a 3-step controller, however, in connection with a pictograph for a conventional signal wiring diagram.
This should also apply to interconnections. The signal lines can be configured differently for a specific type of interface. With respect to digital (e.g., serial) interfaces, it is, for example, possible to define the number of data bits and the number of stop bits. In addition, it is, e.g., possible to select the data transmission protocol. This information and data are stored in the data sets assigned to the respective interconnections and can be defined or altered in a selectable window with input fields by selecting the interconnection in question (clicking the interconnection line or the signal line of this interconnection with the computer mouse).
The program according to one embodiment of the invention preferably incorporates additional tools that serve for a superior visualization of the different interconnection structures within the entire configuration, and that allow for the processing of a certain subunit of the entire process data processing system.
Thus, the selection of a symbol for a certain functional element by means of the input device, in particular by xe2x80x9cclickingxe2x80x9d this symbol with the computer mouse, causes only the interconnection lines and signal lines which are connected to this symbol to be highlighted, e.g., in the form of a colored representation. In addition, the symbols connected to the marked symbol are highlighted. In an optional limited processing mode that can be activated by the user, only the highlighted interconnections and symbols can be altered by means of the input device or devices (mouse, keyboard, etc.). This option of limited processing can prevent erroneous inputs in complex structures.
In addition, different object symbols or their connections can be assigned to different levels. One differentiates between fixed levels, which are specified by the program and refer to connections, and levels, which can be specified by the user. The levels that can be defined by the user are referred to as xe2x80x9cgroupsxe2x80x9d and arrange functional elements according to the specifications of the user.
The fixed levels may, for example, consist of the following levels:
System Level
This level contains the sequence information. The clock rate or trigger conditions are, e.g., specified in the system level.
Control Level
This level is used to specify events that can be continuously interrogated by a functional element.
Data Level
Single values are processed in this level.
Packet Level
Data packets are processed in this level.
The fixed levels aid the user in the preparation of a diagram. In the processing of process data, one preferred embodiment of the program operates with two different data structures. One of the data structures is a xe2x80x9cdata packet.xe2x80x9d A data packet, i.e., a certain quantity of several similar measurement data, is recorded, transmitted and processed. In addition, single values are processed. When operating with xe2x80x9csingle values,xe2x80x9d the individual measurement data are continuously acquired and directly available to each functional element (similar to the pressure in a hydraulic system).
Both data structures and the functional elements that process these data structures can only be combined with one another to a limited degree such that two different levels are effectively used in this case.
The formation of xe2x80x9cgroupsxe2x80x9d results from the specification of sorting rules. For example, it could be desirable that only the functional elements which are linked with a certain functional element are displayed temporarily in a diagram.
Finally, the method according to one embodiment of the invention should allow a processing step that is already known from the processing of data flow charts and conventional signal wiring diagrams. Several functional elements and the corresponding interconnections should be combined into a new functional unit so that only one object symbol is assigned to this functional unit with the individual functions and interconnections. Interconnections that extend outward from this combination should be linked with functional elements outside of this combination within the matrix on the display device by means of signal lines that are laterally connected to this combined object symbol.
Each combination can be illustrated in a separate matrix on the display device once a corresponding input command is entered by the user. The first functional element of this submatrix is preferably formed by the connections to the functional elements that are not part of the combination and referred to as an xe2x80x9cimport/export element.xe2x80x9d All signal transmission channels, which lead from the outside to functional elements within this combination via certain interconnection columns and connected signal transmission channels, originate from these connections. For example, functional units within the entire system can be combined and processed. After the complete configuration of such a unit, this unit is illustrated in the matrix for the entire system as a separate functional element.
Obviously, this combination can be undone through input of an ungroup command. All functional elements of the combination are then placed into the object column of the main matrix again.
In addition, the position of the object symbols and the signal transmission channels as well as the interconnection lines can be sorted through the input of a sort command. This represents one of the major advantages of the configuration matrix in comparison to a conventional data flow chart. In the configuration matrix, all object symbols are arranged in a column. There are no interconnection lines that can be input freely between the object symbols. The interconnections must be produced by means of the defined signal transmission channels in the lines and the interconnection columns adjacent to the functional elements. Resorting the object symbols in the object columns can easily produce a different design of the interconnection lines assigned to these functional elements and a shifting of the signal transmission channels with the program according to one embodiment of the invention. In this case, the length of the interconnection columns is merely adapted to the new position of the respectively rearranged object symbol by the program. Due to this measure, the symbols can be arranged by the user such that a maximum clarity is achieved.
In addition to the method according to one embodiment of the invention, the present application also pertains to a program for carrying out this method as well as to a machine-readable data carrier on which such a program is stored. The required program commands for realizing the respective steps of the method according to one embodiment of the invention may vary depending on the programming language used, the programming tools used and the programming habits of the programmer. However, these program commands should be quite apparent to an experienced system programmer from the previous description of the functions of the method according to one embodiment of the invention.